/**
* @author Meng Zhang
**/

#pragma once
class BufferBase;
class BufferListener;

struct BufferCreateInfo {
	UINT_PTR createInfo;
};

interface IBufferFactory {
	virtual BufferBase* CreateBuffer(BufferCreateInfo* bufferCreateInfo = NULL) = 0;
	virtual bool DestroyBuffer(BufferBase* buffer) = 0;
	virtual BufferListener* CreateView() = 0;
	virtual ~IBufferFactory(){};
};